This invention relates generally to operating systems and particularly to initializing and restarting those operating systems.
When a computer system is initially turned on, a basic input/output system or xe2x80x9cBIOSxe2x80x9d begins to operate. The BIOS controls many important functions of the personal computer, such as how it interprets key strokes, how it puts characters on the screen, and how it communicates with other devices. The BIOS typically instructs the computer to test itself every time the user turns the computer on. To do this, the BIOS uses a power on self test or xe2x80x9cPOSTxe2x80x9d.
When the personal computer starts, it typically first enters what is called the xe2x80x9creal modexe2x80x9d. The computer accesses a special memory location holding program instructions including a jump instruction pointing to the BIOS code. Initially, the BIOS instructs the system microprocessor to run through components of the system and determine whether they are operating properly. Next, any expansion boards which have been installed are checked, and thereafter, the microprocessor begins the actual bootup process. During the bootup process, the BIOS code may instruct the microprocessor to jump to a section of code instructing the microprocessor how to read the first sector of the system floppy, hard disk or CD-ROM drive. The microprocessor then loads the operating system to start actual computer operations.
The Windows(copyright) operating system is perhaps the most common operating system used in personal computers. It is an xe2x80x9copenxe2x80x9d system in that it is adaptable to different computer systems and it is adaptable to changing hardware on any given computer system. At least, in part, due to this openness, it takes a considerable amount of time for the Windows(copyright) operating system to start up. To some users, this delay may be an annoyance and, in some instances, the start up process may interfere with the way a system operates.
Current computer systems have some capabilities to speed the initiation of the computer system. For example, it is known to use a xe2x80x9cfast onxe2x80x9d capability which bypasses all or part of the POST routine. Similarly, some laptop computers have a suspend/resume operation. When desired, the user can press a suspend button and all the settings on the computer are stored. When the computer powers up thereafter, the computer recognizes that a suspend had occurred and immediately resumes operations exactly where the computer left off before. In addition, some computer systems work in an xe2x80x9calways onxe2x80x9d mode whereby it is never necessary, absent a problem, to reboot the computer system. Some simple computer systems, such as personal digital assistants (PDAs), use what is known as a Real Time Operating System (RTOS) to allow the computer to start quickly.
In a number of cases, computer system users are beginning to investigate the possibility of using other operating systems in addition to the Windows(copyright) operating system. For example, the BeOS operating system is advantageous in some circumstances. Similarly the Linux operating system is attracting increasing attention for a number of applications. While a majority of the available application software is only operable on the Windows(copyright) operating system, users may desire to use other operating systems in those situations in which other operating systems are advantageous. Currently, there is no simple way to do this other than to simply load a first operating system, use the first operating system and then when it is desired to use a second operating system to reboot the second operating system. This complexity may be a reason why many users stay with only one operating system.
In accordance with one aspect of the present invention, a method of enabling a computer system to run programs written for two different operating systems includes executing a first operating system. Information about the current state of the first operating system is stored to enable reinitialization. A second operating system is executed and the first operating system is reinitialized using the stored information.